www.gusucode.com > XerCMS 携云PHP企业建站程序 v2015PHP源码程序 > XerCMS 携云PHP企业建站程序 v2015/XerCMS_v20150724/XerCMS_v20150724/XerCMS/Services/admin/column.php

    <?php
/**
 * @name     XERCMS
 * @author   Arno <XerCMS@163.com> [QQ:1328013]
 * @version  1.0.0
 * @link     http://www.XerCMS.com
 */
  
!defined('XERCMS') && exit('Access Denied');

class Service_admin_column extends admin
{
     function xercms() {
		$this->showcolumn();
    		global $columns;
		X::$G['action'] = 'showcolumn';
          $columns = is_array($columns) ? $columns : array();
	     include_once($this->tpl('column.htm'));
	}
	
     function updatecolumn() {
          $id = int1(g('id'));
          $column = p('column');
          if(!valid('column')->checkBasic($column)) {
               $this->tips(valid('column')->getError());
          }
          ini('archives/column/'.$id,$column);
          $columnsetting = ini('archives/column/'.$id);
          unset($columnsetting['id'],$columnsetting['modeltable'],$columnsetting['by'],$columnsetting['order'],$columnsetting['number'],$columnsetting['audit'],$columnsetting['access'],$columnsetting['credits']);
          $columnsetting['template'] = jsonSql($columnsetting['template']);
          DB::update('xercms_column',$columnsetting,'id = '.$id);
          $column['admin'] = explode(',',$column['admin']);
          ini('archives/column/'.$id,$column);
          CACHE::template();CACHE::column($id);
          $this->tips(11);
     } 
	
     function editcolumn() {  
          $id = int1(g('id'));
          $columnsetting = ini('archives/column/'.$id);
          $columnsetting['admin'] = implode(',',(isset($columnsetting['admin']) ? $columnsetting['admin'] : array()));
		include($this->tpl('column.htm'));
     }
  
     function updateaccess() {
          $id = int1(g('id'));
          $access = p('forum');
          ini('archives/column/'.$id,$access);
          $columnsetting = ini('archives/column/'.$id);
          DB::update('xercms_column',array('extra'=>
          jsonSql(array('access'=>$access
          ))),'id = '.$id);
          $this->tips(11);
     } 
  
     function editaccess() {   
          $id = int1(g('id'));
          $columnsetting = ini('archives/column/'.$id);	
          //$columnsetting['access'] = $columnsetting['thread'];
          $group = ini('member/groups');
		include($this->tpl('column.htm'));
     }
  
     function del() {
          $id = g('id');
          $sum = rs('column')->count();
	     if($sum <= 1) {
               $this->tips('column_exists_one');
          }
          $son = rs('column')->count($id);
          if($son <= 0) {
               if(file_exists(INC.'Data/archives/column/'.$id.'.php')) 
                    unlink(INC.'Data/archives/column/'.$id.'.php');
               $column = DB::result('SELECT * FROM xercms_column WHERE id = \''.$id.'\'');
               if($column['parent'] > 0) {
                    DB::query('UPDATE xercms_column SET son = son - 1 WHERE son > 1 AND id = \''.$column['parent'].'\'');
                    $parentSon = DB::result_first('SELECT count(*) FROM xercms_column WHERE parent = \''.$column['parent'].'\'');
                    $parent = ini('archives/column/'.$column['parent']);
                    $parent['son'] = $parentSon;
                    ini('archives/column/'.$column['parent'],$parent);
               }
               rs('column')->del($id);
               
          } else $this->tips('column_exists_son');
          $this->updatecolumnmodel();
          CACHE::template();
          $this->tips(11);
     } 
  
     function insertcolumn() {
		$column = p('column');
	     $columnsetting = ini('archives/column/'.$column['parent']);
	     $columnsetting['extra'] = jsonSql(array('access'=>$columnsetting['access']));
	     unset($columnsetting['id'],$columnsetting['modeltable'],$columnsetting['by'],$columnsetting['order'],$columnsetting['number'],$columnsetting['audit'],$columnsetting['access'],$columnsetting['credits']);
	     $columnsetting['name'] = $column['name'];
	     $columnsetting['parent'] = $column['parent'];
          $columnsetting['admin'] = empty($columnsetting['admin']) ? '' : implode(',',$columnsetting['admin']);
	     $column['model'] = explode('#',$column['model']);
	     if($column['parent'] == 0) {
               $columnsetting['model'] = $column['model'][0];
          }
	     $columnsetting['template'] = jsonSql($columnsetting['template']);
          $id = DB::insert('xercms_column',$columnsetting);
          $columnsetting = ini('archives/column/'.$column['parent']);
	     global $XERCMS;
	     if($column['parent'] == 0) {
		     $columnsetting['template']['index'] = file_exists(XERCMS.'Template/'.$XERCMS['CONFIG']['tplname'].'/'.$XERCMS['CONFIG']['tpldir'].'/archives/'.$column['model'][1].'_index.htm') ? $column['model'][1].'_index.htm' : $columnsetting['template']['index'];
		     $columnsetting['template']['list'] = file_exists(XERCMS.'Template/'.$XERCMS['CONFIG']['tplname'].'/'.$XERCMS['CONFIG']['tpldir'].'/archives/'.$column['model'][1].'_list.htm') ? $column['model'][1].'_list.htm' : $columnsetting['template']['list'];
		     $columnsetting['template']['detail'] = file_exists(XERCMS.'Template/'.$XERCMS['CONFIG']['tplname'].'/'.$XERCMS['CONFIG']['tpldir'].'/archives/'.$column['model'][1].'_detail.htm') ? $column['model'][1].'_detail.htm' : $columnsetting['template']['detail'];
		     $columnsetting['template']['show'] = file_exists(XERCMS.'Template/'.$XERCMS['CONFIG']['tplname'].'/'.$XERCMS['CONFIG']['tpldir'].'/archives/'.$column['model'][1].'_show.htm') ? $column['model'][1].'_show.htm' : $columnsetting['template']['show'];	
		     $columnsetting['modeltable'] = $column['model'][1];
	     }
	     $columnsetting['id'] = $id;$columnsetting['name'] = $column['name'];	
	     if($column['parent'] == 0) {
               $columnsetting['model'] = $column['model'][0];
          }
          if($column['parent'] > 0) {
               DB::query('UPDATE xercms_column SET son = son + 1 WHERE id = \''.$column['parent'].'\'');
          
               $parentSon = DB::result_first('SELECT count(*) FROM xercms_column WHERE parent = \''.$column['parent'].'\'');
               $parent = ini('archives/column/'.$column['parent']);
               $parent['son'] = $parentSon;
               ini('archives/column/'.$column['parent'],$parent);              
          }

	     ini('archives/column/'.$id,$columnsetting);
	     $this->updatecolumnmodel();
	     if(isset($_POST['nav']) && $_POST['nav'] == 1) {
               $nav = array('name'=>$column['name'],'url'=>X::$G['urlpath'].'index.php?m=archives&e=column&id='.$id,'extra'=>jsonSql(array('column'=>$id)),'parent'=>1);
		     DB::insert('xercms_nav',$nav); 
	     }
	     CACHE::template();CACHE::column($id);
	     $this->tips(11,'?s=admin&e=column');
     }
  
     function editcolumnname() {
          $column = p('column');
          foreach($column as $k=>$v) {
               if(!empty($v['name'])) {
                    ini('archives/column/'.$k,'name',$v['name']);
                    DB::update('xercms_column',array('name'=>$v['name']),'id = '.$k);
                    CACHE::column($k);
               }
          }
          $this->updatecolumnmodel();
	     CACHE::template();
	     $this->tips(11,'?s=admin&e=column');
     } 
	
     function showcolumn($top = 0,$layer = 0) {
          global $columns;
          $res = DB::query('select c.*,m.name as title,m.id as mid from xercms_column c,xercms_model m  where m.id = c.model and c.parent = \''.$top.'\'',0,true);
          while($data = DB::fetch($res)) {
               $data['layer'] = $layer;
               $columns[] = $data;
               $this->showcolumn($data['id'],($layer + 1));
          }
     }

     function updatecolumnmodel() {
          global $columnmodel;
          $models = DB::fetch_all('SELECT id,`table` FROM xercms_model');
          foreach($models as $k=>$v) {
               $columnmodel = array();
               $res = DB::query('select id,name from xercms_column where display = 1 AND model = '.$v['id'].' AND parent = \'0\'');
               while($data = DB::fetch($res)) {
                    //$data['layer'] = $layer;
                    $columnmodel[$data['id']] = array('name'=>$data['name']);//$data;
                    $this->columnmodel($v['id'],$data['id'],($layer + 1));
               }
               //ECHO '/'.'archives/mc/'.$v['table'].'/<BR>';exit;
			Data::build('archives/mc/'.$v['table'],$columnmodel);
          }
     }

     function columnmodel($id,$top,$layer) {
          global $columnmodel;
          $res = DB::query('select * from xercms_column where display = 1 AND model = '.$id.' AND parent = \''.$top.'\'');
          while($data = DB::fetch($res)) {
               $columnmodel[$data['id']] = array('name'=>str_pad('',$layer*3,'—',STR_PAD_LEFT).$data['name']);//$data;
               $this->columnmodel($id,$data['id'],($layer + 1));
          }
     }
}
?>